[INFO] fetching crate rsdb 0.12.1...
[INFO] checking rsdb-0.12.1 against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] extracting crate rsdb 0.12.1 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate rsdb 0.12.1
[INFO] finished tweaking crates.io crate rsdb 0.12.1
[INFO] tweaked toml for crates.io crate rsdb 0.12.1 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rsdb 0.12.1 on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 106 packages to latest compatible versions
[INFO] [stderr]       Adding bincode v0.8.0 (available: v2.0.1)
[INFO] [stderr]       Adding clap v2.34.0 (available: v4.5.45)
[INFO] [stderr]       Adding coco v0.2.1 (available: v0.3.4)
[INFO] [stderr]       Adding crossbeam v0.3.2 (available: v0.8.4)
[INFO] [stderr]       Adding docopt v0.8.3 (available: v1.1.1)
[INFO] [stderr]       Adding env_logger v0.4.3 (available: v0.11.8)
[INFO] [stderr]       Adding historian v3.0.11 (available: v4.0.4)
[INFO] [stderr]       Adding lazy_static v0.2.11 (available: v1.5.0)
[INFO] [stderr]       Adding log v0.3.9 (available: v0.4.27)
[INFO] [stderr]       Adding quickcheck v0.2.27 (available: v1.0.3)
[INFO] [stderr]       Adding rand v0.3.23 (available: v0.9.2)
[INFO] [stderr]       Adding rayon v0.8.2 (available: v1.11.0)
[INFO] [stderr]       Adding zstd v0.4.28+zstd.1.4.3 (available: v0.13.3)
[INFO] [stderr]       Adding zstd-sys v1.4.13+zstd.1.4.3 (available: v1.6.3+zstd.1.5.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zstd-safe v1.4.13+zstd.1.4.3
[INFO] [stderr]   Downloaded strsim v0.6.0
[INFO] [stderr]   Downloaded historian v3.0.11
[INFO] [stderr]   Downloaded quickcheck v0.2.27
[INFO] [stderr]   Downloaded crossbeam v0.3.2
[INFO] [stderr]   Downloaded bit-vec v0.4.4
[INFO] [stderr]   Downloaded docopt v0.8.3
[INFO] [stderr]   Downloaded rayon v0.8.2
[INFO] [stderr]   Downloaded bit-set v0.4.0
[INFO] [stderr]   Downloaded chan v0.1.23
[INFO] [stderr]   Downloaded chan-signal v0.3.3
[INFO] [stderr]   Downloaded bincode v0.8.0
[INFO] [stderr]   Downloaded sled_sync v0.2.2
[INFO] [stderr]   Downloaded zstd v0.4.28+zstd.1.4.3
[INFO] [stderr]   Downloaded zstd-sys v1.4.13+zstd.1.4.3
[INFO] [stderr]   Downloaded coco v0.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 910b247fdf4287ffc4048654ba6e5f7f4784fba3056197acf726299eb2895feb
[INFO] running `Command { std: "docker" "start" "-a" "910b247fdf4287ffc4048654ba6e5f7f4784fba3056197acf726299eb2895feb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "910b247fdf4287ffc4048654ba6e5f7f4784fba3056197acf726299eb2895feb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "910b247fdf4287ffc4048654ba6e5f7f4784fba3056197acf726299eb2895feb", kill_on_drop: false }`
[INFO] [stdout] 910b247fdf4287ffc4048654ba6e5f7f4784fba3056197acf726299eb2895feb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 433fe1b921a0e64f91d65f045d68164b0a63840300d573578604c5bb3d5b1524
[INFO] running `Command { std: "docker" "start" "-a" "433fe1b921a0e64f91d65f045d68164b0a63840300d573578604c5bb3d5b1524", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking crossbeam v0.3.2
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking coco v0.2.1
[INFO] [stderr]     Checking crossbeam-epoch v0.7.2
[INFO] [stderr]     Checking sled_sync v0.2.2
[INFO] [stderr]     Checking historian v3.0.11
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking quickcheck v0.2.27
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]     Checking bincode v0.8.0
[INFO] [stderr]     Checking rsdb v0.12.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: derive helper attribute is used before it is introduced
[INFO] [stdout]   --> src/page/mod.rs:87:3
[INFO] [stdout]    |
[INFO] [stdout] 87 | #[serde(bound(deserialize = ""))]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 88 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   --------- the attribute is introduced here
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
[INFO] [stdout]    = note: `#[warn(legacy_derive_helpers)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: derive helper attribute is used before it is introduced
[INFO] [stdout]   --> src/page/mod.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 | #[serde(bound(deserialize = ""))]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 97 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   --------- the attribute is introduced here
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/log/mod.rs:24:23
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn reserve(&self, Vec<u8>) -> Reservation;
[INFO] [stdout]    |                       ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/log/mod.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn write(&self, Vec<u8>) -> LogID;
[INFO] [stdout]    |                     ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/page/mod.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn merge(&self, &[&Self::PageFrag]) -> Self::PageFrag;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &[&Self::PageFrag]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/page/mod.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn recover(&self, &Self::PageFrag) -> Option<Self::Recovery>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Self::PageFrag`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::keyhash::hash`
[INFO] [stdout]  --> src/hash/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use self::keyhash::hash;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crc16`
[INFO] [stdout]   --> src/hash/mod.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use self::crc16::{crc16, crc16_arr};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: derive helper attribute is used before it is introduced
[INFO] [stdout]   --> src/page/mod.rs:87:3
[INFO] [stdout]    |
[INFO] [stdout] 87 | #[serde(bound(deserialize = ""))]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 88 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   --------- the attribute is introduced here
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | #![cfg_attr(test, deny(warnings))]
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    = note: `#[deny(legacy_derive_helpers)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: derive helper attribute is used before it is introduced
[INFO] [stdout]   --> src/page/mod.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 | #[serde(bound(deserialize = ""))]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 97 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   --------- the attribute is introduced here
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79202 <https://github.com/rust-lang/rust/issues/79202>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/log/mod.rs:24:23
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn reserve(&self, Vec<u8>) -> Reservation;
[INFO] [stdout]    |                       ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[deny(anonymous_parameters)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/log/mod.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn write(&self, Vec<u8>) -> LogID;
[INFO] [stdout]    |                     ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/page/mod.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn merge(&self, &[&Self::PageFrag]) -> Self::PageFrag;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &[&Self::PageFrag]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/page/mod.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn recover(&self, &Self::PageFrag) -> Option<Self::Recovery>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Self::PageFrag`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unused import: `self::keyhash::hash`
[INFO] [stdout]  --> src/hash/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use self::keyhash::hash;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[deny(unused_imports)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unused import: `crc16`
[INFO] [stdout]   --> src/hash/mod.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use self::crc16::{crc16, crc16_arr};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/lib.rs:100:1
[INFO] [stdout]     |
[INFO] [stdout] 100 | / lazy_static! {
[INFO] [stdout] 101 | |     /// A metric collector for all rsdb instances running in this
[INFO] [stdout] 102 | |     /// process.
[INFO] [stdout] 103 | |     pub static ref M: Metrics = Metrics::default();
[INFO] [stdout] 104 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/lib.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     lazy_static! {
[INFO] [stdout] 121 | |         static ref START: std::time::Instant = std::time::Instant::now();
[INFO] [stdout] 122 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/lib.rs:100:1
[INFO] [stdout]     |
[INFO] [stdout] 100 | / lazy_static! {
[INFO] [stdout] 101 | |     /// A metric collector for all rsdb instances running in this
[INFO] [stdout] 102 | |     /// process.
[INFO] [stdout] 103 | |     pub static ref M: Metrics = Metrics::default();
[INFO] [stdout] 104 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[deny(deprecated)]` implied by `#[deny(warnings)]`
[INFO] [stdout]     = note: this error originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/lib.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     lazy_static! {
[INFO] [stdout] 121 | |         static ref START: std::time::Instant = std::time::Instant::now();
[INFO] [stdout] 122 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicUsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]    --> src/tree/mod.rs:414:29
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let cas = self.root.compare_and_swap(from, new_root_pid, SeqCst);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicUsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/log/iobuf.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let res = self.header.compare_and_swap(
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicUsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/log/iobuf.rs:68:35
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let res = self.log_offset.compare_and_swap(
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated method `std::sync::atomic::AtomicUsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]    --> src/tree/mod.rs:414:29
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let cas = self.root.compare_and_swap(from, new_root_pid, SeqCst);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated method `std::sync::atomic::AtomicUsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/log/iobuf.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let res = self.header.compare_and_swap(
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of deprecated method `std::sync::atomic::AtomicUsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/log/iobuf.rs:68:35
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let res = self.log_offset.compare_and_swap(
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/tree/mod.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn scan(&self, key: &[u8]) -> TreeIter {
[INFO] [stdout]     |                 ^^^^^                 -------- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn scan(&self, key: &[u8]) -> TreeIter<'_> {
[INFO] [stdout]     |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/tree/mod.rs:262:17
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn iter(&self) -> TreeIter {
[INFO] [stdout]     |                 ^^^^^     -------- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn iter(&self) -> TreeIter<'_> {
[INFO] [stdout]     |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/log/mod.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn reserve(&self, Vec<u8>) -> Reservation;
[INFO] [stdout]    |                ^^^^^              ----------- the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn reserve(&self, Vec<u8>) -> Reservation<'_>;
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/log/mod.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter_from(&self, id: LogID) -> LogIter<Self> {
[INFO] [stdout]    |                  ^^^^^                ------------- the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter_from(&self, id: LogID) -> LogIter<'_, Self> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/log/mod.rs:143:31
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let len32: u32 = unsafe { std::mem::transmute(len_buf) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `u32::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/log/lss.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn reserve(&self, buf: Vec<u8>) -> Reservation {
[INFO] [stdout]    |                ^^^^^                   ----------- the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn reserve(&self, buf: Vec<u8>) -> Reservation<'_> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/log/lss.rs:117:35
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let len32: u32 = unsafe { std::mem::transmute(len_buf) };
[INFO] [stdout]     |                                   -------------------^^^^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: replace this with: `u32::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/log/iobuf.rs:164:27
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub(super) fn reserve(&self, raw_buf: Vec<u8>) -> Reservation {
[INFO] [stdout]     |                           ^^^^^                       ----------- the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub(super) fn reserve(&self, raw_buf: Vec<u8>) -> Reservation<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/log/iobuf.rs:497:40
[INFO] [stdout]     |
[INFO] [stdout] 497 |     let size_bytes: [u8; 4] = unsafe { std::mem::transmute(buf.len() as u32) };
[INFO] [stdout]     |                                        -------------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        help: replace this with: `u32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/page/page_cache.rs:640:39
[INFO] [stdout]     |
[INFO] [stdout] 640 |         let crc64: [u8; 8] = unsafe { std::mem::transmute(crc64(&*bytes)) };
[INFO] [stdout]     |                                       -------------------^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: replace this with: `u64::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Vec::<T, A>::split_off` that must be used
[INFO] [stdout]    --> src/page/page_cache.rs:693:9
[INFO] [stdout]     |
[INFO] [stdout] 693 |         buf.split_off(len - 8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: use `.truncate()` if you don't need the other half
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let _ = buf.split_off(len - 8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/page/page_cache.rs:699:42
[INFO] [stdout]     |
[INFO] [stdout] 699 |         let crc_expected: u64 = unsafe { std::mem::transmute(crc_expected_bytes) };
[INFO] [stdout]     |                                          -------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          help: replace this with: `u64::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `libc`
[INFO] [stdout]    --> tests/test_log.rs:142:7
[INFO] [stdout]     |
[INFO] [stdout] 142 | #[cfg(feature = "libc")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `bench`, `chan-signal`, `clap`, `clippy`, `default`, `docopt`, `env_logger`, `log`, `num_cpus`, `rand`, `rayon`, `stress`, and `zstd`
[INFO] [stdout]     = help: consider adding `libc` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> tests/test_tree.rs:205:29
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn shrink(&self) -> Box<Iterator<Item = OpVec>> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn shrink(&self) -> Box<dyn Iterator<Item = OpVec>> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> tests/test_pagecache.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::atomic::{ATOMIC_USIZE_INIT, AtomicUsize, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> tests/test_pagecache.rs:113:39
[INFO] [stdout]     |
[INFO] [stdout] 113 |         static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 113 -         static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 113 +         static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> tests/test_log.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{ATOMIC_USIZE_INIT, AtomicUsize, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> tests/test_log.rs:218:39
[INFO] [stdout]     |
[INFO] [stdout] 218 |         static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 218 -         static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 218 +         static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> tests/test_pagecache.rs:147:29
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn shrink(&self) -> Box<Iterator<Item = OpVec>> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn shrink(&self) -> Box<dyn Iterator<Item = OpVec>> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> tests/test_log.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn shrink(&self) -> Box<Iterator<Item = OpVec>> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn shrink(&self) -> Box<dyn Iterator<Item = OpVec>> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicUsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]    --> tests/test_pagecache.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |         COUNTER.compare_and_swap(0, 1, Ordering::SeqCst);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/tree/mod.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn scan(&self, key: &[u8]) -> TreeIter {
[INFO] [stdout]     |                 ^^^^^                 -------- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[deny(mismatched_lifetime_syntaxes)]` implied by `#[deny(warnings)]`
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn scan(&self, key: &[u8]) -> TreeIter<'_> {
[INFO] [stdout]     |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/tree/mod.rs:262:17
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn iter(&self) -> TreeIter {
[INFO] [stdout]     |                 ^^^^^     -------- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn iter(&self) -> TreeIter<'_> {
[INFO] [stdout]     |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/log/mod.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn reserve(&self, Vec<u8>) -> Reservation;
[INFO] [stdout]    |                ^^^^^              ----------- the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn reserve(&self, Vec<u8>) -> Reservation<'_>;
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/log/mod.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter_from(&self, id: LogID) -> LogIter<Self> {
[INFO] [stdout]    |                  ^^^^^                ------------- the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn iter_from(&self, id: LogID) -> LogIter<'_, Self> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary transmute
[INFO] [stdout]    --> src/log/mod.rs:143:31
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let len32: u32 = unsafe { std::mem::transmute(len_buf) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `u32::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[deny(unnecessary_transmutes)]` implied by `#[deny(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/log/lss.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn reserve(&self, buf: Vec<u8>) -> Reservation {
[INFO] [stdout]    |                ^^^^^                   ----------- the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn reserve(&self, buf: Vec<u8>) -> Reservation<'_> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary transmute
[INFO] [stdout]    --> src/log/lss.rs:117:35
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let len32: u32 = unsafe { std::mem::transmute(len_buf) };
[INFO] [stdout]     |                                   -------------------^^^^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: replace this with: `u32::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/log/iobuf.rs:164:27
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub(super) fn reserve(&self, raw_buf: Vec<u8>) -> Reservation {
[INFO] [stdout]     |                           ^^^^^                       ----------- the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub(super) fn reserve(&self, raw_buf: Vec<u8>) -> Reservation<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary transmute
[INFO] [stdout]    --> src/log/iobuf.rs:497:40
[INFO] [stdout]     |
[INFO] [stdout] 497 |     let size_bytes: [u8; 4] = unsafe { std::mem::transmute(buf.len() as u32) };
[INFO] [stdout]     |                                        -------------------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        help: replace this with: `u32::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary transmute
[INFO] [stdout]    --> src/page/page_cache.rs:640:39
[INFO] [stdout]     |
[INFO] [stdout] 640 |         let crc64: [u8; 8] = unsafe { std::mem::transmute(crc64(&*bytes)) };
[INFO] [stdout]     |                                       -------------------^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: replace this with: `u64::to_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unused return value of `Vec::<T, A>::split_off` that must be used
[INFO] [stdout]    --> src/page/page_cache.rs:693:9
[INFO] [stdout]     |
[INFO] [stdout] 693 |         buf.split_off(len - 8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: use `.truncate()` if you don't need the other half
[INFO] [stdout]     = note: `#[deny(unused_must_use)]` implied by `#[deny(warnings)]`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let _ = buf.split_off(len - 8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary transmute
[INFO] [stdout]    --> src/page/page_cache.rs:699:42
[INFO] [stdout]     |
[INFO] [stdout] 699 |         let crc_expected: u64 = unsafe { std::mem::transmute(crc_expected_bytes) };
[INFO] [stdout]     |                                          -------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          help: replace this with: `u64::from_ne_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rsdb` (lib test) due to 25 previous errors
[INFO] running `Command { std: "docker" "inspect" "433fe1b921a0e64f91d65f045d68164b0a63840300d573578604c5bb3d5b1524", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "433fe1b921a0e64f91d65f045d68164b0a63840300d573578604c5bb3d5b1524", kill_on_drop: false }`
[INFO] [stdout] 433fe1b921a0e64f91d65f045d68164b0a63840300d573578604c5bb3d5b1524
